/**CEvent is a class that describes a specific event;
All the event can be generalized into this form and it can describe any of the form of the 5 basic types:
define the 5 basic types here:

1. absorption:
2. reaction
3. emision
4. exchange
5. movement

all the units is in accordance with log.pdf


*/

#include <list>
#include <CAtom.h>

#ifndef CEVENT_H
#define CEVENT_H





class CEvent
{
    public:
        CEvent();
        virtual ~CEvent();

        //The reactant:  if no reactant, then the list is simply empty
        std::list<CAtom> reactant_list;   //contains all the reactant
        std::list<AbsorptionPosition> absorp_list;
        std::list<CAtom> product_list;   // contains all the product

        // below the parameter describes the event of the and is used to determine whether they can take place.
        double  Temperature;        // the temperature of the reaction
        std::list<int> respective_range;  // for now, it is in the order, in this order: 0-1; 0-2; 0-3... 0-n, 1-2, 1-3,1-4.....
        std::list<CSpacePoint> product_movement;
        double  coverage_density ;
        double pressure;
        double activation_energy;
        double  amu_mass;  // this is duplicate as it can be obtained from CAtom
        double sticking_coefficient;
        double num_of_active_site_density;


    protected:
    private:



};

#endif // CEVENT_H
